﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using ThiagoSoftware.Dados;
using GerTestes.Entity;
using System.Data.SqlClient;

namespace GerTestes.Data
{
    public class DBModulos
    {
        #region Obter Módulos x Projeto
        public DataTable getModulos(int pProjeto)
        {
            string SQL = @"SELECT tm.ID_MODULO,
                                   tm.DESCRICAO,
                                   tm.ATIVO
                            FROM   TB_MODULOS tm
                            WHERE  tm.ID_PROJETO = @ID_PROJETO";
            DataAccess db = new DataAccess(SQL);
            db.AddParam("@ID_PROJETO", SqlDbType.Int, pProjeto);
            return db.GetDataTable();
        }
        #endregion

        #region Get Dados Módulo
        public Modulo getDadosModulo(int pCodigoModulo)
        {
            string SQL = @"SELECT tm.ID_MODULO,
                                   tm.ID_PROJETO,
                                   tm.DESCRICAO,
                                   tm.ATIVO
                            FROM   TB_MODULOS tm
                            WHERE  tm.ID_MODULO = @ID_MODULO";
            DataAccess db = new DataAccess(SQL);
            db.AddParam("@ID_MODULO", SqlDbType.Int, pCodigoModulo);
            try
            {
                db.AbrirConexao();
                SqlDataReader dr = db.ExecuteReader();
                Modulo modulo = new Modulo();
                if (dr.Read())
                {
                    modulo.CodigoModulo = pCodigoModulo;
                    modulo.CodigoProjeto = Convert.ToInt32(dr["ID_PROJETO"]);
                    modulo.Descricao = dr["DESCRICAO"].ToString();
                    modulo.Ativo = dr["ATIVO"].ToString();
                }
                return modulo;
            }
            catch
            {
                return null;
            }
        }
        #endregion

        #region Incluir Módulo
        public bool incluirModulo(Modulo modulo)
        {
            string SQL = @"INSERT INTO TB_MODULOS
                              (
                                ID_PROJETO,
                                DESCRICAO,
                                ATIVO,
                                DATA_CADASTRO
                              )
                            VALUES
                              (
                                @ID_PROJETO,
                                @DESCRICAO,
                                @ATIVO,
                                GETDATE()
                              )";
            DataAccess db = new DataAccess(SQL);
            db.AddParam("@ID_PROJETO", SqlDbType.Int, modulo.CodigoProjeto);
            db.AddParam("@DESCRICAO", SqlDbType.VarChar, modulo.Descricao);
            db.AddParam("@ATIVO", SqlDbType.VarChar, modulo.Ativo);
            return db.ExecuteNonQuery();
        }
        #endregion

        #region Alterar Módulo
        public bool alterarModulo(Modulo modulo)
        {
            string SQL = @"UPDATE TB_MODULOS
                            SET    ID_PROJETO  = @ID_PROJETO,
                                   DESCRICAO   = @DESCRICAO,
                                   ATIVO       = @ATIVO
                            WHERE  ID_MODULO   = @ID_MODULO";
            DataAccess db = new DataAccess(SQL);
            db.AddParam("@ID_PROJETO", SqlDbType.Int, modulo.CodigoProjeto);
            db.AddParam("@DESCRICAO", SqlDbType.VarChar, modulo.Descricao);
            db.AddParam("@ATIVO", SqlDbType.VarChar, modulo.Ativo);
            db.AddParam("@ID_MODULO", SqlDbType.Int, modulo.CodigoModulo);
            return db.ExecuteNonQuery();
        }
        #endregion

        #region Excluir Módulo
        public bool excluirModulo(int pCodModulo)
        {
            string SQL = @"DELETE 
                            FROM   TB_MODULOS
                            WHERE  ID_MODULO = @ID_MODULO";
            DataAccess db = new DataAccess(SQL);
            db.AddParam("@ID_MODULO", SqlDbType.Int, pCodModulo);
            return db.ExecuteNonQuery();
        }
        #endregion
    }
}
